package main

import (
	"fmt"
	"regexp"
)

func main() {
	//将切片 s 拆分为由表达式分隔的子字符串，并返回这些表达式匹配之间的子字符串切片。
	//
	//此方法返回的切片由 FindAllString 返回的切片中未包含的 s 的所有子字符串组成。 当在不包含元字符的表达式上调用时，它等效于 strings.SplitN。
	//
	//例子：
	//
	//s := regexp.MustCompile("a*").Split("abaabaccadaaae", 5)
	//// s: ["", "b", "b", "c", "cadaaae"]
	//计数确定要返回的子字符串数：
	//
	//n > 0：最多n个子串； 最后一个子串将是未拆分的余数。
	//n == 0：结果为零（零子串）
	//n < 0：所有子串

	a := regexp.MustCompile(`a`)
	fmt.Println(a.Split("banana", -1))
	fmt.Println(a.Split("banana", 0))
	fmt.Println(a.Split("banana", 1))
	fmt.Println(a.Split("banana", 2))
	zp := regexp.MustCompile(`z+`)
	fmt.Println(zp.Split("pizza", -1))
	fmt.Println(zp.Split("pizza", 0))
	fmt.Println(zp.Split("pizza", 1))
	fmt.Println(zp.Split("pizza", 2))
	//[b n n ]
	//[]
	//[banana]
	//[b nana]
	//[pi a]
	//[]
	//[pizza]
	//[pi a]
}
